#ifndef __SW_APP_H__
#define __SW_APP_H__

#include "sweety.h"
#include <assert.h>

namespace SW
{
	class SW_API SwApp
	{
	public:
							SwApp();
		virtual				~SwApp();

		/**
		@brief    Get current application instance.
		@return Current application instance pointer.
		*/
		static SwApp*		GetInstance();

		// Overridables
		virtual bool		Init();
		virtual int			Run();
		virtual	void		MessageLoop() = 0;

	protected:
		static SwApp*		m_pSharedApplication;
	};
}



#endif